#ifndef __GZ_INTERFACE_STREAM_SERVER_H__
#define __GZ_INTERFACE_STREAM_SERVER_H__

#include <string>
#include <functional>

#include "stream_context.h"

namespace Gazella {

typedef std::function<void(StreamContext context, const std::string&)> stream_callback_t;

class GzStreamServer {
public:
    GzStreamServer();
    ~GzStreamServer();

    static int create_server(
        const std::string& name,
        stream_callback_t callback,
        int domain = 0,
        const std::string& describe = ""
    );

    static int delete_server(const std::string& name);
};

} //namespace Gazella
#endif
